920C - Swap Adjacent Elements - CodeForces Solution


dfs and similar greedy math sortings two pointers *1400

Please click on ads to support us..

C++ Code:

#include<iostream>
#include<string.h>
using namespace std;
int sum[200005];
int a[200005];
int main(){
	int n;
	cin >> n;
	for(int i = 1; i <= n; i ++){
		scanf("%d",&a[i]);
	}
	char s[200005];
	scanf("%s",s + 1);
	int l = strlen(s + 1);
	for(int i = 1; i <= l; i ++){
		sum[i] = sum[i - 1] + s[i] - '0';
	}
	for(int i = 1; i <= n; i ++){
		if(a[i] > i){
			if(sum[a[i] - 1] - sum[i - 1] == (a[i] - i))
				continue;
			else{
				puts("NO");
				return 0;
			}
		}
		if(a[i] < i){
			if(sum[i - 1] - sum[a[i] - 1] == (i - a[i]))
				continue;
							else{
								puts("NO");
								return 0;
							}
		}
		
	}
	puts("YES");
	return 0;
}
			     		  	 	    	  				 	 	


Comments

Submit
0 Comments
More Questions

1566A - Median Maximization
1278A - Shuffle Hashing
1666F - Fancy Stack
1354A - Alarm Clock
1543B - Customising the Track
1337A - Ichihime and Triangle
1366A - Shovels and Swords
919A - Supermarket
630C - Lucky Numbers
1208B - Uniqueness
1384A - Common Prefixes
371A - K-Periodic Array
1542A - Odd Set
1567B - MEXor Mixup
669A - Little Artem and Presents
691B - s-palindrome
851A - Arpa and a research in Mexican wave
811A - Vladik and Courtesy
1006B - Polycarp's Practice
1422A - Fence
21D - Traveling Graph
1559B - Mocha and Red and Blue
1579C - Ticks
268B - Buttons
898A - Rounding
1372B - Omkar and Last Class of Math
1025D - Recovering BST
439A - Devu the Singer and Churu the Joker
1323A - Even Subset Sum Problem
1095A - Repeating Cipher